Client-server communications systems may vary in terms of when the server may send a communication to the client. For example, communications between a website (server) and a client may follow a request-response model. In this model, the client may be reachable from the server if the client is sending a request to the server. The client may otherwise be unreachable. As such, the server may only send communications to the client in response to a client request. In this model, the client request may result in an open network connection over which the server may send communications.
This model differs from traditional messaging systems. Traditional messaging systems assumed the existence of a connection between clients and servers. Because the connection persists, the server may send a communication to the client at any time.
On increasing numbers of platforms, e.g., mobile devices, maintaining network connections is resource intensive. For example, mobile devices may quickly drain battery power by trying to maintain a network connection. As such, these platforms may not maintain network connections when client applications are not active.
Maintaining a network connection may be further impeded by limitations of the networks themselves. In some cases, networks may not be reliable. For example, cell phones lose their network connections in regions without appropriate cellular towers.
Typical approaches to these types of connectivity issues still rely on creating open network connections between the client and the server. Depending on open network connections for communications between clients and servers increases the demand on the limited resources of increasing numbers of client devices.